package com.qfedu.user.controller;

import com.qfedu.common.core.common.R;
import com.qfedu.common.core.annotation.NoLogin;
import com.qfedu.user.param.LoginParam;
import com.qfedu.user.param.RegisterParam;
import com.qfedu.user.service.UserService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;

/**
 * 以梦为马，以汗为泉，不忘初心，不负韶华
 *
 * @author
 * @version 1.0
 * @data 2025/6/2 17:51
 */
//控制层使用该注解，使验证注解生效
@Validated
@RestController
@RequestMapping ("/user")
public class LoginController {

    @Resource
    private UserService userService;

    /**
     * 注册
     * @Valid 验证注解
     * 参数表示的类中使用了验证注解，该参数使用@Valid修饰
     * @param registerParam
     * @return
     */
    @NoLogin
    @PostMapping("/register")
    public R register(@Valid @RequestBody RegisterParam  registerParam){
         userService.register(registerParam);
         return R.ok();
    }

    /**
     * 登录
     * @param loginParam
     * @return
     */
    @NoLogin
    @PostMapping("/login")
    public R login(@RequestBody LoginParam loginParam){
        String token = userService.login(loginParam);
        return R.ok(token);
    }

    /**
     * 获取用户信息
     * @param phone
     * @return
     */

    @NoLogin
    @GetMapping("/code")
    public R code(String phone){
         userService.createCode(phone);
        return R.ok();
    }

}
